package HuaWeiOd.AA;

import java.util.*;

/**
 * 题目描述
 *
 * 有5台打印机打印文件，每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分，
 *
 * 所以队列中的文件有1~10不同的代先级，其中数字越大优先级越高。
 *
 * 打印机会从自己的待打印队列中选择优先级最高的文件来打印。
 *
 * 如果存在两个优先级一样的文件，则选择最早进入队列的那个文件。
 *
 * 现在请你来模拟这5台打印机的打印过程。
 *
 * 输入描述
 *
 * 每个输入包含1个测试用例，每个测试用例第一行给出发生事件的数量N（0 < N < 1000）。
 *
 * 接下来有 N 行，分别表示发生的事件。
 *
 * 共有如下两种事件：
 *
 * 1. “IN P NUM”，表示有一个拥有优先级 NUM 的文件放到了打印机 P 的待打印队列中。（0< P <= 5, 0 < NUM <= 10)；
 *
 * 2. “OUT P”，表示打印机 P 进行了一次文件打印，同时该文件从待打印队列中取出。（0 < P <= 5）。
 *
 * 输出描述
 *
 * 对于每个测试用例，每次”OUT P”事件，请在一行中输出文件的编号。
 *
 * 如果此时没有文件可以打印，请输出”NULL“。
 *
 * 文件的编号定义为”IN P NUM”事件发生第 x 次，此处待打印文件的编号为x。编号从1开始。
 *
 * 示例1 输入输出示例仅供调试，后台判断数据一般不包含示例
 *
 * 输入
 *
 * 7
 *
 * IN 1 1
 *
 * IN 1 2
 *
 * IN 1 3
 *
 * IN 2 1
 *
 * OUT 1
 *
 * OUT 2
 *
 * OUT 2
 *
 * 输出
 *
 * 3
 *
 * 4
 *
 * NULL
 * @author caihe
 * @date 2023/4/12 22:12
 */
public class 打印机队列 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.nextLine());
        Map<Integer, PriorityQueue<Pair>> map = new HashMap<>();
        int id = 1;
        for (int i = 0; i < n; i++) {
            String str = sc.nextLine();
            String[] strs = str.split(" ");
            String operation = strs[0];
            int p = Integer.parseInt(strs[1]);
            if ("IN".equals(operation)) {
                int num = Integer.parseInt(strs[2]);
                PriorityQueue<Pair> queue = map.getOrDefault(p, new PriorityQueue<>((o1, o2) -> o2.val - o1.val));
                Pair pair = new Pair();
                pair.key = id++;
                pair.val = num;
                queue.add(pair);
                map.put(p, queue);
            } else {
                PriorityQueue<Pair> queue = map.get(p);
                if (queue == null || queue.size() ==0) {
                    System.out.println("null");
                } else {
                    System.out.println(queue.poll().key);
                }
                
            }
        }
    }
    static class Pair {
        public int key;
        public int val;
    }
}
/**
6
IN 1 2
IN 3 4
IN 1 5
OUT 1
OUT 3
OUT 3
 
7
IN 1 1
IN 1 2
IN 1 3
IN 2 1
OUT 1
OUT 2
OUT 2
 */